package com.mkh.st.common.core.constant.enums;

import com.mkh.st.common.core.constant.IResultCode;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum ResultCodeEnum implements IResultCode {

    SUCCESS(200, "操作成功"),
    FAILURE(400, "业务异常"),
    NOT_FOUND(404, "服务或资源未找到"),
    ERROR(500, "服务异常"),
    TOKEN_EXPIRE(401, "token过期，请重新登录！"),
    FORBIDDEN(403, "访问被拒绝，您无权访问！"),

    // 服务异常
    SYS_ADMIN_ERROR(501, "通用管理服务异常,请联系管理员！"),
    FILE_ERROR(502, "文件服务异常，请联系管理员！"),
    BUSINESS_ERROR(504, "企业用户服务异常，请联系管理员！"),

    TOO_MANY_REQUESTS(429, "Too Many Requests"),
    GLOBAL_PARAM_ERROR(4000, "参数错误"),
    REPEAT_ERROR(4001, "数据重复"),
    DATA_STATUS_ERROR(4002, "数据状态错误"),
    NO_DATA_UPDATE_ERROR(4003, "无数据更新"),
    NOT_FOUND_DATA(4004, "数据未找到"),
    DATA_SAVE_ERROR(4005, "数据保存异常"),
    DATA_UPDATE_ERROR(4006, "数据修改异常"),
    /**
     * 获取当前用户失败
     */
    CURRENT_USER_FAIL(10001, "获取当前用户失败"),
    UPDATE_USER_STATUS(10002, "用户是超级管理员，不可以修改状态"),
    UPDATE_USER_PASSWORD(10003, "用户是超级管理员，不可以修改密码"),

    // 用户错误处理
    USER_NEED_LOGIN(11001, "用户未登录，请登陆后进行访问"),
    USER_NO_ROLE(11002, "当前账户未分配角色，请联系管理员!"),
    USER_TENANT_LOCK(11003, "当前租户已被禁用，请联系管理员!"),
    USER_UPDATE_FAIL(11004, "用户信息修改失败!"),
    USER_ADD_FAIL(11005, "用户信息添加失败!"),
    USER_ADD_ROLE_FAIL(11006, "用户维护角色信息失败!"),
    USER_ADD_DATA_SCOPE_FAIL(11007, "用户添加数据权限失败!"),
    USER_NEW_OLD_PASSWORD_DIFF(11008, "确认密码不一致!"),
    USER_UPDATE_PASSWORD_FAIL(11009, "密码修改失败!"),
    USER_PASSWORD_DIFF(11010, "密码不正确!"),
    USER_ROLE_DIFF(11011, "账号角色不相同!"),
    USER_DATA_COPY_FAIL(11012, "数据复制失败!"),
    USER_MAX_COUNT(11013, "用户数已超上线!"),
    USER_DATA_SAVE_FAIL(11014, "数据权限分配失败!"),
    USER_PHONE_XEIST(11015, "手机号码已存在!"),

	//保存数据失败
	SAVE_TENANT_FAIL(12001,"保存租户信息失败"),
	SAVE_MENU_FAIL(12002,"保存菜单信息失败"),
	STATUS_ENABLE_FAIL(12003,"启用失败!"),
	STATUS_DISABLE_FAIL(12004,"禁用失败!"),
	SAVE_ROLE_FAIL(12005,"保存角色信息失败!"),
	SAVE_COMPANY_FAIL(12006,"保存角色信息失败!"),


    //角色管理
    ROLE_IS_NOT_EXIST(13001, "角色ID无效"),
    ROLE_IS_EXIST(13002, "角色代码已存在"),
    ROLE_IS_SYSTEM(13003, "系统角色不能删除!"),
    ROLE_DELETE_FAIL(13004, "角色删除失败!"),
    ROLE_DELETE_USER_FAIL(13005, "角色删除用户失败!"),
    ROLE_ADD_USER_FAIL(13006, "角色分配用户失败!"),
    ROLE_EXIST_USER(13007, "角色已分配用户不能删除!"),
    ROLE_EXIST_CHILD(13008, "角色存在子角色不能删除!"),


    //数据组
    GROUP_ID_ERROR(19001, "数据组信息不存在"),

    //SMS
    ERR_SMS_MAX(20001, "短信发送次数超过上限"),


    //Remote Service
    REMOTE_SERVICE_ERR(21001, "远程服务调用异常！"),
    HTTP_TRANSFER_ERROR(21002, "HTTP调用异常！"),
    HTTP_RESPONSE_ERROR(21003, "HTTP响应异常！"),

    //审批流


    // 导入导出
    EXPORT_ERROR(24001, "导出异常！"),


    //查询信息不存在
    CLAIM_INFO_NOT_EXISTS(25001, "角色不存在!"),

    //数据已存在
    TENANT_CODE_EXIST(26001, "租户编码已存在!"),
    TENANT_NAME_EXIST(26002, "租户名称已存在!"),
    TENANT_PHONE_EXIST(26003, "新增租户手机号码已存在!"),
    MENU_PERMISSION_EXIST(26004, "菜单/按钮权限标识已存在!"),
    STATUS_ENABLE_EXIST(26005, "该记录已被启用!"),
	STATUS_DISABLE_EXIST(26006, "该记录已被禁用!"),
	COMPANY_NAME_EXIST(26007, "公司名称已存在!"),
	BUSINESS_ENTITY_NAME_EXIST(26008, "业务站点不能重复!")
    ;


    /**
     * 状态码
     */
    final int code;
    /**
     * 消息内容
     */
    final String msg;

}
